1.实验目标

 

本次实验将引导您在阿里云公共云上实际操作,购买POLARDB实例和ECS客户机实例,安装配置Sysbench测试工具,对POLARDB发起测试交易,并记录测试结果。

 

通过本次实验,您将会:

  • 了解并亲自通过阿里云控制台购买一个POLARDB实例
  • 购买测试所需的ECS客户机实例,配置专有网络VPC虚拟路由器
  • 配置POLARDB实例的相关参数
  • 通过Sysbench测试工具使用OLTP交易模型对POLARDB进行压力测试

 

本次实验使用的阿里云控制台链接为:https://home.console.aliyun.com/

本次实验使用的测试账号和密码请联系实验讲师索取。

完成本次实验需要约30分钟。

 

2.实验准备

您需要准备一台可以连接公网的电脑,并安装好SSH客户端工具,例如PuTTy,iTerm2等。

3.实验步骤

任务1:创建虚专有网络VPC和交换机

专有网络VPC(Virtual Private Cloud)是用户基于阿里云创建的自定义私有网络。交换机是组成专有网络的基础网络设备。它可以连接不同的云产品实例。在专有网络内创建云产品实例时,必须指定云产品实例所连接的交换机。

 

  1. 登录专有网络管理控制台。 
  2. 在最顶部菜单栏,选择专有网络的地域。本次实验均选择华东1。 
  3. 单击创建专有网络,根据以下信息配置专有网络和交换机,然后单击确定

专有网络

名称

LabVPC

目标网段

默认(192.168.0.0/16)

交换机

名称

LabSwitch

可用区

华东1可用区G

目标网段

默认(192.168.0.0/24)

 

任务2:购买POLARDB实例

POLARDB是阿里云自主研发的新一代关系型数据库,是与MySQL完全兼容的Cloud Native设计的云托管数据库产品。POLARDB采用分布式存储引擎设计,在提供高吞吐和低延迟OLTP服务的同时,以更低的使用成本,提供更好的系统在线扩展、故障快速恢复、数据备份容灾服务。

  1. 进入POLARDB管理控制台(https://polardb.console.aliyun.com)
  2. 单击右上角的创建按钮。
  3. 选择按量付费。 
  4. 设置如下参数。

基本配置

地域

华东1

可用区

华东1可用区G

网络类型

专有网络

VPC网络

LabVPC

VPC交换机

LabSwitch

实例配置

引擎类型

POLARDB

实例规格

2核16GB(独享规格)

只读实例

创建一个同规格只读实例

集群名称

Lab-POLARDB-Cluster

购买量

集群数量

1

 

  1. 点击立即购买
  2. 点选同意协议,点击去开通。
  3. 点击管理控制台,点选华东1地域,看到实例创建正在创建中。
  4. 利用等待的时间,我们继续创建ECS客户机实例。

 

任务3:创建ECS客户机

云服务器(Elastic Compute Service,简称 ECS)是一种简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效率,降低 IT 成本,使您更专注于核心业务创新。本次实验中,ECS客户机通过运行Sysbench测试工具,连接到POLARDB数据库服务器上执行测试。

 

  1. 登录 云服务器ECS管理控制台
  2. 在左侧导航栏,单击 实例
  3. 在 实例列表 页面,单击 创建实例,进入 创建 页面。
  4. 进行 基础配置
  5. 选择 计费方式。本实验中,选择 按量付费
  6. 选择地域和可用区,选择华东 1可用区G
  7. 选择实例规格为 仅显示最新一代 > x86计算 > 计算型 > 计算型c5 2vCPU 4 GB。 
  8. 购买数量1台。
  9. 选择镜像为 系统镜像,操作系统CentOS,版本7.4 64
  10. 选择存储。本实验中,仅使用系统盘,默认选择40 GiB高效云盘。
  11. 单击 下一步:网络和安全组,完成网络和安全组设置。
  12. 选择网络类型为 专有网络。选择LabVPCLabSwitch
  13. 选择 分配公网IP地址 为实例分配一个公网IP地址,并选择 按使用流量 对公网带宽计费。 使用默认公网带宽5Mbps。
  14. 选择安全组。使用默认安全组。
  15. 不添加弹性网卡。
  16. 单击 下一步:系统配置
  17. 您可以选填此页面中的选项,建议您设置 登录凭证 和 实例名称。选择 自定义密码,设置密码为Ecs123456,并将实例名称设为LabECS。 
  18. 单击 下一步:分组设置。跳过这一步。
  19. 单击 下一步:确认订单。确认所选配置,您也可以单击编辑图标返回修改配置。
  20. 阅读和确认 云服务器ECS服务条款,然后单击 创建实例
  21. 单击管理控制台,返回实例列表。点击刷新按钮直到实例状态变为运行中

 

任务4:安装Sysbench压测工具

  1. 确认ECS实例LabECS的状态已经是运行中
  2. 在页面上的IP地址列中,记录(或者复制)此实例的公网IP地址。
  3. 打开SSH客户端工具,输入ssh root@<ECS公网IP地址>。输入yes将地址加入本地可信列表,然后输入上面创建的ecs密码Ecs123456登录。
  4. 顺序执行下面的命令安装Sysbench和辅助工具。可以一次性复制粘贴所有命令并执行。
sudo yum -y install git mysql make automake libtool pkgconfig libaio-devel

git clone https://code.aliyun.com/guoqi/sysbench.git

sudo yum -y install mariadb-devel

cd sysbench

git checkout 0.5

./autogen.sh

./configure

sudo make -j

sudo make install

cd ..

任务5:配置POLARDB实例白名单和用户信息

  1. 进入POLARDB管理控制台(https://polardb.console.aliyun.com)
  2. 点击左侧集群列表
  3. 选择上方华东1区域。
  4. 确认集群Lab-POLARDB-Cluster为运行中状态。点击管理
  5. 在访问信息段落中,点击白名单列表后面的编辑按钮(一支笔的图标)。
  6. 在弹出的输入框中输入192.168.0.0/24,点击确认
  7. 在访问信息段落中,初始账号后面,点击申请账号
  8. 在弹出的对话框中,输入用户名:polardbadmin,密码:Polardb123456。
  9. 单击确定创建账号。
  10. 在访问信息段落里面,找到集群连接地址 (VPC),点击后面的复制
  11. 在ECS客户机的SSH窗口内,执行下面的ping命令,将复制的主机地址粘贴上,记录从ECS客户机到POLARDB的ping响应时间time。
ping -c 10 <POLARDB连接地址>

记录ping时间

rtt min/avg/max/mdev = 0.088/0.094/0.101/0.010 ms

在之前登录的ECS客户机的SSH命令行窗口内,执行下面的命令,创建sysbench schema。

mysql -h <POLARDB连接地址> -u polardbadmin -pPolardb123456 -e "create schema sysbench"
  1. 创建sysbench测试数据表,插入测试数据
sysbench --test=parallel_prepare.lua --mysql-host=<POLARDB连接地址> --mysql-port=3306 --mysql-user=polardbadmin --mysql-password=Polardb123456 --mysql-db=sysbench --mysql-table-engine=innodb --oltp-table-size=100000 --oltp-tables-count=128 --db-driver=mysql --num-threads=8 --max-requests=8 run


 

任务6:测试POLARDB OLTP读取性能

  1. 测试POLARDB只读性能,并发连接数为16,运行3分钟输出统计结果
sysbench --test=oltp.lua --mysql-host=<POLARDB连接地址> --oltp-tables-count=128 --mysql-user=polardbadmin --mysql-password=Polardb123456 --mysql-port=3306 --db-driver=mysql --oltp-tablesize=100000 --mysql-db=sysbench --max-requests=0 --oltp_simple_ranges=0 --oltp-distinct-ranges=0 --oltp-sum-ranges=0 --oltp-order-ranges=0 --max-time=180 --oltp-read-only=on --num-threads=16  --randtype=uniform --report-interval=10 run

 

  1. 得到类似如下统计结果。需要关注的是transactions和read/write requests两行的统计值,其分别是每秒交易量和每秒读写量。
OLTP test statistics:

    queries performed:

        read:                            1926850

        write:                           0

        other:                           385370

        total:                           2312220

    transactions:                        192685 (6418.04 per sec.)

    read/write requests:                 1926850 (64180.36 per sec.)

    other operations:                    385370 (12836.07 per sec.)

    ignored errors:                      0      (0.00 per sec.)

    reconnects:                          0      (0.00 per sec.)

 

General statistics:

    total time:                          30.0224s

    total number of events:              192685

    total time taken by event execution: 480.1505s

    response time:

         min:                                  1.55ms

         avg:                                  2.49ms

         max:                                 66.51ms

         approx.  95 percentile:               1.89ms



Threads fairness:

    events (avg/stddev):           12042.8125/140.37

    execution time (avg/stddev):   30.0094/0.00

 

任务7:测试POLARDB OLTP写入性能

  1. 测试POLARDB写入性能,并发连接数为16,运行3分钟输出统计结果
sysbench --test=oltp.lua --mysql-host=<POLARDB主机地址> --oltp-tables-count=128 --mysql-user=polardbadmin --mysql-password=Polardb123456 --mysql-port=3306 --db-driver=mysql --oltp-tablesize=100000 --mysql-db=sysbench --max-requests=0 --max-time=180 --oltp_simple_ranges=0 --oltp-distinct-ranges=0 --oltp-sum-ranges=0 --oltp-order-ranges=0 --oltp-point-selects=0 --num-threads=16 --randtype=uniform --report-interval=10 run

 

  1. 得到类似如下统计结果。需要关注的是transactions和read/write requests两行的统计值,其分别是每秒交易量和每秒读写量。
OLTP test statistics:

    queries performed:

        read:                            0

        write:                           1797301

        other:                           898651

        total:                           2695952

    transactions:                        449323 (2496.10 per sec.)

    read/write requests:                 1797301 (9984.46 per sec.)

    other operations:                    898651 (4992.23 per sec.)

    ignored errors:                      5      (0.03 per sec.)

    reconnects:                          0      (0.00 per sec.)



General statistics:

    total time:                          180.0098s

    total number of events:              449323

    total time taken by event execution: 2879.7452s

    response time:

         min:                                  0.90ms

         avg:                                  6.41ms

         max:                               1106.37ms

         approx.  95 percentile:              11.31ms



Threads fairness:

    events (avg/stddev):           28082.6875/98.71

    execution time (avg/stddev):   179.9841/0.00

 

 

 

 

========= 文档结束=========